【Inforamtica CIH】データハブのデータ保持期間を過ぎてしまった場合の挙動を検証してみた

【Inforamtica CIH】データハブのデータ保持期間を過ぎてしまった場合の挙動を検証してみた

Clock Icon2024.12.01

はじめに

こんにちは、データ事業本部の渡部です。

今回はInformaticaのCloud Integration Hub(以降、CIH)のデータコンシュームが失敗したあと、データ保持期間を過ぎてしまった場合の挙動を確認してみました。
CIHはデータハブのデータ自動削除機能を有しており、このあたりの挙動を押さえておかないと、障害発生時のリカバリで慌てることとなってしまいます。
未来の憂いを無くすため、今回この検証をしてみます。

結論

結論としてはデータ保持期間を過ぎたあとに、CIHのサブスクリプションを実行することではデータを再取得することは不可能です。
それもそのはず、データが保持期間を過ぎれば文字通りデータはハブに「保持」されず、「削除」されてしまいます。
そのためデータロストを防ぐために、データ保持期間は連休などを加味して十分に長い日数を設定しておくとよいでしょう。

検証ログ

今回の検証で使用したCIHの構成は以下の通りです。
パブリケーションはS3→データハブ(プライベートリポジトリ)、サブスクリプションはデータハブ→S3としています。

hub_kousei_01

検証のためコンシュームされるデータの保持期間コンシュームされないデータの保持期間を1日に設定しました。
前者がサブスクリプションすべてからコンシュームされたデータの保持期間を、後者がサブスクリプションすべてからコンシュームされていないデータの保持期間となります。
今回はサブスクリプション「sub_watanabe_02」をエラーになるように設定しています。

貼り付けた画像_2024_11_29_10_36

まず以下のようなデータをパブリケーションからハブに連携しました。

貼り付けた画像_2024_12_01_10_43

今回は2つのサブスクリプションのうち1つがエラーとなるようにしていますが、1日以内なら再実行で問題なくデータ再取得が可能です。
しかし翌日にサブスクリプションを実行してみると、コンシュームするデータがありません。とのことで、データ取得ができなくなりました。

consume-dekinai

実はこのときには、ハブ自体にはデータはまだ存在していました。
社内環境なので節約のためにSecureAgentをインストールしているEC2・DBを停止させていたため、自動削除が実行されませんでした。
ここから言えることはデータがまだハブに残っていたとしても、CIHの差分取得機能ではデータ保持期間を超えたデータは連携されないようになっているようです。

以前のパブリケーションの取得を選択すると、任意の日時範囲のパブリケーションデータを取得できるのですが、データ保持期間を超えてしまうと、以下のようなエラーが出力されて、サブスクリプションの再実行ができませんでした。

consume-before-publication

consume-before-publication-03

実際にEC2・DBを起動させた状態でいると、システム(CIH)によるデータの自動削除が成功しました。

貼り付けた画像_2024_11_30_10_12

このイベントのメンテナンスレポートを確認してみると、Deleted Publications That Ran Prior To Date(日付より前に発行されたパブリケーションの削除)が表示されています。
今回の自動削除は2024/11/30の8時ごろに起きましたが、削除されたのは11/28(UTC)より前のデータのようです。

貼り付けた画像_2024_11_30_10_15

実際にハブのリポジトリに使用しているRDS for MySQLのパラメータグループでgeneral_logを有効にして、クエリを確認してみました。

DELETE FROM cih_pv_repository.TEST_WAT__TOP_WA_Z89DV739VOE97 WHERE DIH__PUBLICATION_INSTANCE_DATE < '2024-11-28 09:00:00'

上記のようなDELETE文が発行されていました。
どうやら日本時間だと9:00前にパブリッシュされたデータが削除されるようです。

まとめ

はじめの結論のとおり、データの保持期間については余裕を持った設定をすると良いでしょう。
もちろんデータ連携方法によっても保持期間の選択については変わるところではありますが、CIHの思想としてはパブリケーションのデータを複数のサブスクリプションが任意に取得をするというPub/Subなので、サブスクリプションがコンシュームする前にデータが消えてしまうと再連携が難しくなります。
個別のサブスクリプションのためにデータ連携をしなければなりません。

そのためデータの保持期間には余裕を持たせて、なるべく障害が発生しても簡単にリカバリできるようにしていきたいところです。

以上、ご参考になれば幸いです。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.